{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "1847f394",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f57d0d76",
   "metadata": {},
   "source": [
    "Exercise 4.1.1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "6dc53d97",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAGwCAYAAABB4NqyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAz80lEQVR4nO3de1yUdf7//+eAMngI1DAGXAo8pFseyBNhtlqygrmtZAc1b6l8StvK/eaSpbQFmfVBXTO38iatfdTYDrp9PmW3Tpg7RX0qwhTNMvOjrmcd8LCAYoLB+/eHP6cmDgLOMMj1uN9u1014z/t683ozDvO8va/rmstmjDECAACwkAB/FwAAANDUCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByWvm7gOaoqqpKhw4d0iWXXCKbzebvcgAAQD0YY3TixAlFRkYqIKDuNR4CUA0OHTqkqKgof5cBAAAaYf/+/frVr35VZx8CUA0uueQSSWd/gSEhIX6uBgAA1EdpaamioqLc7+N1IQDV4Nxhr5CQEAIQAAAXmfqcvsJJ0AAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHJa+bsAAP4RPfu98/bZM290i/xZ9VGferw1r6b8/QA4ixUgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOdwMFWiBvHVD0OamKefV3H6H3HgV8C5WgAAAgOUQgAAAgOUQgAAAgOUQgAAAgOUQgAAAgOUQgAAAgOUQgAAAgOUQgAAAgOUQgAAAgOUQgAAAgOU0iwC0ZMkSRUdHKzg4WHFxcVq/fn2tfd98800NHDhQHTp0ULt27RQbG6u///3vHn2MMUpPT1dERITatGmjhIQE7dixw9fTAAAAFwm/B6DVq1crNTVVGRkZKigoUL9+/ZSYmKiioqIa+3fq1El//vOflZeXpy1btiglJUUpKSlau3atu8+CBQv03HPPKSsrS/n5+WrXrp0SExN1+vTpppoWAABoxvwegBYtWqSpU6cqJSVFV111lbKystS2bVstX768xv7Dhw/XLbfcol//+tfq1q2bHnzwQfXt21efffaZpLOrP4sXL9Zjjz2mMWPGqG/fvsrOztahQ4e0Zs2aGscsLy9XaWmpxwYAAFouv94NvqKiQhs3blRaWpq7LSAgQAkJCcrLyzvv/sYYffTRR9q+fbvmz58vSdq9e7dcLpcSEhLc/UJDQxUXF6e8vDyNHz++2jiZmZmaM2eOF2YE+F5LvSN6c7v7ure01N9hU96dvj64gz0ayq8rQEePHlVlZaXCw8M92sPDw+VyuWrdr6SkRO3bt1dQUJBGjx6t559/Xr/97W8lyb1fQ8ZMS0tTSUmJe9u/f/+FTAsAADRzfl0BaqxLLrlEmzdv1smTJ+V0OpWamqquXbtq+PDhjRrPbrfLbrd7t0gAANBs+TUAhYWFKTAwUIWFhR7thYWFcjgcte4XEBCg7t27S5JiY2O1bds2ZWZmavjw4e79CgsLFRER4TFmbGys9ycBAAAuOn49BBYUFKQBAwbI6XS626qqquR0OhUfH1/vcaqqqlReXi5JiomJkcPh8BiztLRU+fn5DRoTAAC0XH4/BJaamqrJkydr4MCBGjx4sBYvXqyysjKlpKRIkiZNmqQuXbooMzNT0tkTlgcOHKhu3bqpvLxc77//vv7+979r6dKlkiSbzaYZM2boqaeeUo8ePRQTE6PHH39ckZGRSk5O9tc0AQBAM+L3ADRu3DgdOXJE6enpcrlcio2NVU5Ojvsk5n379ikg4KeFqrKyMt1///06cOCA2rRpo169eumVV17RuHHj3H0eeeQRlZWVadq0aSouLtbQoUOVk5Oj4ODgJp8fAABofmzGGOPvIpqb0tJShYaGqqSkRCEhIf4uB/DQUi8XR/PhrcvXuQweTa0h799+/yBEAACApkYAAgAAlkMAAgAAlkMAAgAAlkMAAgAAluP3y+CB5q65Xe0C+Br/V2EFrAABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLsRljjL+LaG5KS0sVGhqqkpIShYSE+Lsc+Bl3xgZahj3zRvu7BPhYQ96/WQECAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACW08rf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ZKSCg4MVHx+vzMxMXX755bX2Ly8vV3l5ufv7mi7xb46iZ7933j575o1ugkoAAM0Z7xfVNegQ2JYtW5SUlFTr46NGjdLXX39dr7GOHj2qyspKhYeHe7SHh4df0IcpxsXFaeXKlcrJydHSpUu1e/duXX/99Tpx4kSt+2RmZio0NNS9RUVFNfrnAwCA5q9BAej48ePVAsvPhYeH69///vcFF3UhRo0apdtvv119+/ZVYmKi3n//fRUXF+sf//hHrfukpaWppKTEve3fv78JKwYAAE2tQYfAKisr1apV7bsEBgbqxx9/rNdYYWFhCgwMVGFhoUd7YWGhV8/f6dChg6688krt3Lmz1j52u112u91rPxMAADRvDQpAxhhNmTKl1rDw8/NozicoKEgDBgyQ0+lUcnKypLOX2DudTk2fPr0hZdXp5MmT2rVrl+666y6vjQkAAC5uDQpAkydPPm+f+l4BJp29q/zkyZM1cOBADR48WIsXL1ZZWZn7qrBJkyapS5cuyszMlHT2xOnvvvvO/fXBgwe1efNmtW/fXt27d5ckzZw5UzfffLOuuOIKHTp0SBkZGQoMDNSECRMaMlUAANCCNSgArVixwqs/fNy4cTpy5IjS09PlcrkUGxurnJwc93lG+/btU0DAT6cpHTp0SNdcc437+4ULF2rhwoUaNmyYcnNzJUkHDhzQhAkTdOzYMXXu3FlDhw7Vl19+yU1aAQCAW6NuheFN06dPr/WQ17lQc050dPR5P2161apV3ioNAAC0UI26GSoAAMDFjAAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAsp5W/C4BvRc9+z98lAAAuAvV5v9gzb3QTVNI0WAECAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWw93gAQBAvbSkO8azAgQAACyHAAQAACyHAAQAACyHAAQAACyHAAQAACyHAAQAACyHAAQAACyHAAQAACyHAAQAACzH7wFoyZIlio6OVnBwsOLi4rR+/fpa+27dulW33nqroqOjZbPZtHjx4gseEwAAWI9fA9Dq1auVmpqqjIwMFRQUqF+/fkpMTFRRUVGN/U+dOqWuXbtq3rx5cjgcXhkTAABYj18D0KJFizR16lSlpKToqquuUlZWltq2bavly5fX2H/QoEH6y1/+ovHjx8tut3tlTAAAYD1+uxlqRUWFNm7cqLS0NHdbQECAEhISlJeX16RjlpeXq7y83P19aWlpo36+N9XnhnMAAKBx/LYCdPToUVVWVio8PNyjPTw8XC6Xq0nHzMzMVGhoqHuLiopq1M8HAAAXB7+fBN0cpKWlqaSkxL3t37/f3yUBAAAf8tshsLCwMAUGBqqwsNCjvbCwsNYTnH01pt1ur/WcIgAA0PL4bQUoKChIAwYMkNPpdLdVVVXJ6XQqPj6+2YwJAABaHr+tAElSamqqJk+erIEDB2rw4MFavHixysrKlJKSIkmaNGmSunTposzMTElnT3L+7rvv3F8fPHhQmzdvVvv27dW9e/d6jQkAAODXADRu3DgdOXJE6enpcrlcio2NVU5Ojvsk5n379ikg4KdFqkOHDumaa65xf79w4UItXLhQw4YNU25ubr3GBAAAsBljjL+LaG5KS0sVGhqqkpIShYSE+KUGLoMHAFyM9swb7bef3ZD3b64CAwAAlkMAAgAAlkMAAgAAlkMAAgAAlkMAAgAAlkMAAgAAlkMAAgAAlkMAAgAAlkMAAgAAlkMAAgAAlkMAAgAAlkMAAgAAlkMAAgAAlkMAAgAAlkMAAgAAlkMAAgAAlkMAAgAAlkMAAgAAlkMAAgAAltPK3wVYUfTs9/xdAgAAlsYKEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBzuBg8AALwmevZ75+2zZ97oJqikbqwAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAy2kWAWjJkiWKjo5WcHCw4uLitH79+jr7v/HGG+rVq5eCg4PVp08fvf/++x6PT5kyRTabzWNLSkry5RQAAMBFxO8BaPXq1UpNTVVGRoYKCgrUr18/JSYmqqioqMb+X3zxhSZMmKC7775bmzZtUnJyspKTk/Xtt9969EtKStLhw4fd2+uvv94U0wEAABcBvwegRYsWaerUqUpJSdFVV12lrKwstW3bVsuXL6+x/1//+lclJSXp4Ycf1q9//WvNnTtX/fv31wsvvODRz263y+FwuLeOHTs2xXQAAMBFwK8BqKKiQhs3blRCQoK7LSAgQAkJCcrLy6txn7y8PI/+kpSYmFitf25uri677DL17NlT9913n44dO1ZrHeXl5SotLfXYAABAy+XXAHT06FFVVlYqPDzcoz08PFwul6vGfVwu13n7JyUlKTs7W06nU/Pnz9cnn3yiUaNGqbKyssYxMzMzFRoa6t6ioqIucGYAAKA5a+XvAnxh/Pjx7q/79Omjvn37qlu3bsrNzdWIESOq9U9LS1Nqaqr7+9LSUkIQAAAtmF9XgMLCwhQYGKjCwkKP9sLCQjkcjhr3cTgcDeovSV27dlVYWJh27txZ4+N2u10hISEeGwAAaLn8GoCCgoI0YMAAOZ1Od1tVVZWcTqfi4+Nr3Cc+Pt6jvyStW7eu1v6SdODAAR07dkwRERHeKRwAAFzU/H4VWGpqqpYtW6aXX35Z27Zt03333aeysjKlpKRIkiZNmqS0tDR3/wcffFA5OTl65pln9P333+uJJ57Qhg0bNH36dEnSyZMn9fDDD+vLL7/Unj175HQ6NWbMGHXv3l2JiYl+mSMAAGhe/H4O0Lhx43TkyBGlp6fL5XIpNjZWOTk57hOd9+3bp4CAn3LakCFD9Nprr+mxxx7To48+qh49emjNmjXq3bu3JCkwMFBbtmzRyy+/rOLiYkVGRmrkyJGaO3eu7Ha7X+YIAACaF5sxxvi7iOamtLRUoaGhKikp8cn5QNGz3/P6mAAAXCz2zBvtk3Eb8v7t90NgAAAATY0ABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALKdZBKAlS5YoOjpa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KioqkiS1atVKd9xxh1599VXdddddKisr09tvv61Vq1a5++/YsUPp6enKz8/X0aNH3Ss/+/btU+/evRsyfY/aP//8c48Vn8rKSp0+fVqnTp1S27ZtGzUugIYjAAHwuXbt2ql79+5eGevkyZO6+eabNX/+/GqPRUREuL9u3bq1x2M2m83j8NXEiRM1bNgwFRUVad26dWrTpo37yjRJuvnmm3XFFVdo2bJlioyMVFVVlXr37q2Kiooa6woICJAxxqPtzJkz1WqfM2eOxo4dW23/n4c+AL5HAALQbPTs2VOvvPKKysvL3VeJffXVVx59+vfvr//5n/9RdHS0WrVq/J+wIUOGKCoqSqtXr9YHH3yg22+/3R2ajh07pu3bt2vZsmW6/vrrJUmfffZZneN17txZJ06cUFlZmdq1aydJ1T4jqH///tq+fbvXwiCAxuMkaAA+V15eLpfL5bH9/Kqtc+68805VVVVp2rRp2rZtm9auXauFCxdKkvtqqgceeEDHjx/XhAkT9NVXX2nXrl1au3atUlJSVFlZ2aC67rzzTmVlZWndunWaOHGiu71jx4669NJL9be//U07d+7URx99pNTU1DrHiouLU9u2bfXoo49q165deu2117Ry5UqPPunp6crOztacOXO0detWbdu2TatWrdJjjz3WoLoBXDgCEACfy8nJUUREhMc2dOjQav1CQkL0zjvvaPPmzYqNjdWf//xnpaenS/rpEFFkZKQ+//xzVVZWauTIkerTp49mzJihDh06KCCgYX/SJk6cqO+++05dunTRdddd524PCAjQqlWrtHHjRvXu3Vt/+tOf9Je//KXOsTp16qRXXnlF77//vvr06aPXX3/d49J7SUpMTNS7776rDz/8UIMGDdK1116rZ599VldccUWD6gZw4WzmlwetAaAZefXVV5WSkqKSkhK1adPG3+UAaCE4BwhAs5Kdna2uXbuqS5cu+vrrrzVr1izdcccdhB8AXkUAAtCsuFwupaeny+VyKSIiQrfffjsfFAjA6zgEBgAALIeToAEAgOUQgAAAgOUQgAAAgOUQgAAAgOUQgAAAgOUQgAAAgOUQgAAAgOUQgAAAgOX8f5tN60KXq9H6AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "d = 1000  # dimension of the data\n",
    "\n",
    "G = np.random.normal(size=(d, d))\n",
    "G = (G + G.T) / np.sqrt(2*d)   # make it symmetric and scale it\n",
    "\n",
    "eigenvalues, _ = np.linalg.eigh(G)\n",
    "\n",
    "plt.hist(eigenvalues, bins=50, density=True)\n",
    "plt.xlabel('Eigenvalue')\n",
    "plt.ylabel('Density')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "71c636ae",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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XKllx10vSJJOHCm97tdaWy84vCcA16bjuXX370HqkXNV+venon/HCs98U6f/3qI09gABAADTYQ8QHOun++P0yir9fz7/cD38038rH6a1Nd2hbQFAXavo37FeuXmX74fI/cKchj1AAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdLgZKhxiZebKy09y90mSjrtecGI3AFBzdXEz5n+4Htbe3JPS28PKrZnQtMvlJ9wwtVawBwgAAJgOAQgAAJgOAQgAAJhOjQLQf//7X0f3AQAAUGdqFIDat2+v/v37a/Pmzbp48aKjewIAAKhVNboKLCMjQ+vWrVNMTIwmTZqkIUOGaPTo0erZs6ej+wMAwJRW/nRVra5cZVuGCaET6qib60+N9gCFhobqpZde0qlTp7R27VqdPn1affr00W233aalS5fqzJkzju4TAADAYa7qJOgbbrhBgwcP1ltvvaUXX3xRhw8f1vTp0xUcHKzhw4fr9OnTjuoTAADAYa4qAH3xxReaMGGCAgMDtXTpUk2fPl1HjhxRUlKSTp06pUGDBlVpnBUrVqhNmzby9PRUWFiYPvvss3Jr16xZo7vuukvNmjVTs2bNFBERUareMAzFxcUpMDBQDRs2VEREhL799turmSoAALiO1CgALV26VJ07d1bv3r116tQpbdy4Ud99952ee+45hYSE6K677tL69euVkZFR6Vhbt25VTEyM4uPjlZGRoa5duyoyMlI5OTll1qekpGjYsGHavXu3UlNTFRwcrIEDB+rkyZO2moULF+rll1/W6tWrlZaWpsaNGysyMpITtgEAgCTJxTAMo7obdejQQY8//rhGjhypwMDAMmuKior05ptvasSIERWOFRYWpjvuuEOvvvqqJKmkpETBwcF68sknNWvWrEp7KS4uVrNmzfTqq69q+PDhMgxDQUFBmjZtmqZPny5JysvLk7+/v9avX6+hQ4dWOqbVapWPj4/y8vLk7e1daf21YlnSN5XWTL335hqNbbsVxtF/S5KO53IrDABwhBPe3ctdt+mhOZVuX5v/9tc31fn9XaOrwJKSknTjjTfK1dV+B5JhGDp+/LhuvPFGubu7Vxp+ioqKlJ6ertjYn+9z4urqqoiICKWmplapl/Pnz+vSpUvy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HnhAnTt3VkZGhubPn6+nnnrKriY3N1f33HOPbr/9dn3xxRdKTExUdna2/vCHP9jVbdiwQY0bN1ZaWpoWLlyoefPmKSkpSZL06KOP6t1331V+fr6tfufOnTp//rwefPBBSVJBQYFiYmL0xRdfKDk5Wa6urnrwwQdVUlJS4/n9+9//1vDhwzV58mR99dVX+vOf/6z169fr+eefr/GYAGqo1u83D8DURowYYbi5uRmNGze2ezz//POGYRiGJOPtt982DMMwVq1aZTRv3ty4cOGCbfs1a9YYkoy9e/cahmEY8+fPNwYOHGj3HsePHzckGYcOHTIMwzD69u1r9OnTx67mjjvuMJ566inDMAzj0qVLRosWLYyNGzfa1g8bNswYMmRIufM4c+aMIcn48ssvDcMwjKNHj9r1tW7dOsPHx8dum7ffftv45T+zAwYMMF544QW7mk2bNhmBgYHlvi+A2sE5QABqXf/+/bVq1Sq7Zb6+vqXqDh06pC5dusjT09O2rGfPnnY1//nPf7R79255eXmV2v7IkSO6+eabJUldunSxWxcYGKicnBxJ0g033KA//OEPev311/XYY4+poKBA77zzjrZs2WKr//bbbxUXF6e0tDSdPXvWtucnKytLt912W3Wmb9f7xx9/bLfHp7i4WBcvXtT58+fVqFGjGo0LoPoIQABqXePGjdW+fXuHjJWfn68HHnhAL774Yql1gYGBtucNGjSwW+fi4mJ3+OrRRx9V3759lZOTo6SkJDVs2NB2ZZokPfDAA7rpppu0Zs0aBQUFqaSkRLfddpuKiorK7MvV1VWGYdgtu3TpUqne586dq8GDB5fa/pehD0DtIwABqDc6duyozZs3q7Cw0HaV2Oeff25X061bN/39739XmzZtdMMNNf8nrHfv3goODtbWrVv1z3/+Uw8//LAtNJ07d06HDh3SmjVrdNddd0mSPvroowrHa9mypX788UcVFBSocePGklTqO4K6deumQ4cOOSwMAqg5ToIGUOsKCwtlsVjsHr+8auuKRx55RCUlJRo7dqwOHjyonTt3avHixZJku5pq4sSJ+v777zVs2DB9/vnnOnLkiHbu3KlRo0apuLi4Wn098sgjWr16tZKSkvToo4/aljdr1kzNmzfXX/7yFx0+fFgffPCBYmJiKhwrLCxMjRo10uzZs3XkyBG98cYbWr9+vV1NXFycNm7cqLlz5+rAgQM6ePCgtmzZomeeeaZafQO4egQgALUuMTFRgYGBdo8+ffqUqvP29ta7776rzMxMhYaG6umnn1ZcXJyknw8RBQUF6eOPP1ZxcbEGDhyozp07a8qUKWratKlcXav3T9qjjz6qr776Sq1atdKdd95pW+7q6qotW7YoPT1dt912m6ZOnapFixZVOJavr682b96s999/X507d9abb75pd+m9JEVGRuq9997Trl27dMcdd6hXr15atmyZbrrppmr1DeDquRi/PmgNAPXI66+/rlGjRikvL08NGzZ0djsArhOcAwSgXtm4caPatm2rVq1a6T//+Y+eeuop/eEPfyD8AHAoAhCAesVisSguLk4Wi0WBgYF6+OGH+aJAAA7HITAAAGA6nAQNAABMhwAEAABMhwAEAABMhwAEAABMhwAEAABMhwAEAABMhwAEAABMhwAEAABM5/8DnqRtNJ4v158AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "for d in [500, 1000, 2000]:\n",
    "    G = np.random.normal(size=(d, d))\n",
    "    G = (G + G.T) / np.sqrt(2*d)   # make it symmetric and scale it\n",
    "\n",
    "    eigenvalues, _ = np.linalg.eigh(G)\n",
    "\n",
    "    plt.hist(eigenvalues, bins=50, density=True, label=f'd={d}', alpha=0.5)\n",
    "plt.xlabel('Eigenvalue')\n",
    "plt.ylabel('Density')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0c21fe9c",
   "metadata": {},
   "source": [
    "Exercise 4.1.2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "4bf56a6b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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paWlSZIOHz4si8ViE+Pt7a2IiAhrTE3hEhgAAPVcXl6eXnvtNW3cuFH9+vWTJK1bt06tW7e2xsyePVtTpkyx22taLBaFhobatF3exspisahZs2ayWCzWtitjLBaLNe7K80qLqSkUQAAA1HOHDh1SYWGhIiIirG2+vr5q37699bmfn5/8/PwckV6dxCUwAABMwN6XwAICApSVlWXTdvl5QEBAuTFXHr/yvNJiagoFEAAA9Vzbtm3VqFEjpaenW9t+/vlnfffdd9bns2fPVmZmZrmPqoiMjNSnn36qixcvWtuSk5PVvn17NWvWzBqTkpJic15ycrIiIyMlSaGhoQoICLCJyc3NVXp6ujWmpnAJDGiAliR/V2HM5LturIVM7Cfth3OSpC9/K3tstTmmivKpTC4N8X2CY3h6emrkyJGaOnWqmjdvLj8/Pz311FNydv59nqOql8AOHjyovLw8WSwWXbhwwVog/eEPf5Crq6seeughzZo1SyNHjtSTTz6p3bt364UXXtCSJUusfUycOFG9e/fWokWLdM8992jTpk365ptv9PLLL0uSnJycNGnSJM2dO1ft2rWz3gYfFBSkgQMH2uV7UxYKIAAAGoDnn39eeXl5uvfee9W0aVM98cQTysnJqXZ/jz32mLZv3259fuutt0q6dOdWSEiIvL299dFHH2n8+PHq2rWrWrRooYSEBOtnAElSz5499cYbb+jpp5/WjBkz1K5dO23dutX6GUCSNG3aNOXn52v06NHKzs5Wr169lJSUVKOfASRRAAEAULF68AGcnp6e2rBhgzZs2GBtmzp1arX7S01NrTCmU6dO+ve//11uzIMPPqgHH3ywzONOTk6aPXu2Zs+eXdUUrwkFEADTWJG5Qhm558qN6eI1uJayAeBILIIGAACmwwwQYGZ22nurx9GXy3mN5pXux27KGlf2LrXOvSBJOu7V1eH59Dha/mzUpXOb//51PbgMA9QXzAABAADToQACAACmQwEEAABMhzVAAGrM/zkf1M7sE5eeZK6o+ITsXWUeOub837U7uZtLPW6vu7cycjdrRWbzcvMZ59Op8n2U08/lMZXlvuKwco8DqD5mgAAAgOlQAAEAANOhAAIAoIHq06ePJk2a5Og06iTWAAEAUIEVlVnDZkfjwsfV6utd7T//+Y/mzZunzz77TGfPnlVISIjGjBmjiRMn2sSl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ALC3at0Gf/78eTVt2lSS9NFHH2nQoEFydnZWjx499OOPP9o1QQAA8LsVmSsqjBkXPq4WMqnfqlUAhYWFaevWrbr//vu1bds2TZ48WZJ0+vRpU+2eDgBATSuxx+Jhj5JBobfXTjINSLUugSUkJGjKlCkKCQlRRESEIiMjJV2aDbr11lvtmiAAAIC9VWsG6M9//rN69eqlU6dOqXPnztb2fv366f7777dbcgAAADWhWgWQdGnT0as3LO3evfs1JwQAAFDTqlUA5efna968eUpJSdHp06dVXFxsc/yHH36wS3IAAAA1oVoF0GOPPabt27frkUceUWBgoHWLDNQ/1rsJsnfpmPMFxyYDAEAtqVYB9M9//lMffPCB/vjHP9o7HwAAgBpXrbvAmjVrJl9fX3vnAgAAUCuqVQDNmTNHCQkJNvuBAQAA1BfVugS2aNEiHTp0SP7+/goJCVGjRo1sjmdkZNglOQAAgJpQrQJo4MCBdk4DNW1J8neltmfknpMktc5lATQA1AfHskv+vj5+6Jz168i2zWsznXqrWgXQzJkz7Z0HasCV+8VcLnQAAEA11wBJUnZ2tl599VXFx8frp59+knTp0teJEyfslhwAAEBNqNYM0K5duxQVFSVvb28dOXJEo0aNkq+vr7Zs2aKjR49q/fr19s4TAACUwWbD1MMe0s85JYP6xtdeQvVAtWaA4uLiNGLECH3//fdyd3e3tv/pT3/Sp59+arfkAAAAakK1CqCvv/5af/3rX0u0t2rVShaL5ZqTAgAAqEnVKoDc3NyUm5tbov27775Ty5YtrzkpAACAmlStAui+++7T7NmzdfHiRUmSk5OTjh49qieffFIPPPCAXRMEAACwt2oVQIsWLVJeXp5atmypCxcuqHfv3goLC1PTpk313HPP2TtHAAAAu6rWXWDe3t5KTk7W559/rv/85z/Ky8tTly5dFBUVZe/8AAAA7K7KBVBxcbHWrl2rLVu26MiRI3JyclJoaKgCAgJkGIacnJxqIk8AAAC7qdIlMMMwdN999+mxxx7TiRMn1LFjR91888368ccfNWLECN1///01lScAAIDdVGkGaO3atfr000+VkpKivn372hz7+OOPNXDgQK1fv17Dhg2za5IAAAD2VKUZoDfffFMzZswoUfxI0p133qnp06fr9ddft1tyAAAANaFKM0C7du3SggULyjx+991368UXX7zmpAAAQPWtyN5VsvGKDbIlaVz4uFrKpm6qUgH0008/yd/fv8zj/v7++vnnn685KdjZ4X+rde4FR2cBAHCkw/+2fW7y/cKqdAmsqKhI111Xds3k4uKi33777ZqTAgAAqElVmgEyDEMjRoyQm5tbqccLCgrskhQAAEBNqlIBNHz48ApjuAMMAADUdVUqgNasWVNTeQAAANSaam2FAQAA6jez3ylWrc1QAQAA6jMKIAAAYDoOL4CWL1+ukJAQubu7KyIiQl999VWZsXv27NEDDzygkJAQOTk5aenSpSVinn32WTk5Odk8OnToUIMjAAAA9Y1DC6DNmzcrLi5OM2fOVEZGhjp37qzo6GidPn261Pjz58+rTZs2mjdvngICAsrs9+abb9apU6esj88++6ymhgAAAOohhy6CXrx4sUaNGqXY2FhJ0qpVq/TBBx9o9erVmj59eon42267TbfddpsklXr8suuuu67cAgkAgIbqWHbFn/wf7ONRYUzaoXMqOPNduTGT77qx0nnVNQ6bASosLNSOHTsUFRX1ezLOzoqKilJaWto19f39998rKChIbdq00cMPP6yjR4+WG19QUKDc3FybBwAAaLgcNgN09uxZFRUVldhbzN/fX/v37692vxEREVq7dq3at2+vU6dOadasWbr99tu1e/duNW3atNRzEhMTNWvWrGq/pkN9klj2sdJucQQAAI5fBG1vd999tx588EF16tRJ0dHR+vDDD5Wdna233nqrzHPi4+OVk5NjfRw7dqwWMwYAALXNYTNALVq0kIuLi7Kysmzas7Ky7Lp+x8fHRzfeeKMOHjxYZoybm1uZ+5sBAICGx2EzQK6ururatatSUlKsbcXFxUpJSVFkZKTdXicvL0+HDh1SYGCg3foEAAD1m0PvAouLi9Pw4cPVrVs3de/eXUuXLlV+fr71rrBhw4apVatWSky8tM6lsLBQe/futX594sQJZWZmytPTU2FhYZKkKVOm6N5779UNN9ygkydPaubMmXJxcdHQoUMdM0gAAFDnOLQAGjx4sM6cOaOEhARZLBaFh4crKSnJujD66NGjcnb+fZLq5MmTuvXWW63PFy5cqIULF6p3795KTU2VJB0/flxDhw7VuXPn1LJlS/Xq1UtffvmlWrZsWatjAwAAdZfDN0OdMGGCJkyYUOqxy0XNZSEhITIMo9z+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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "for d in [500, 1000, 2000]:\n",
    "    G = (np.random.rand(d, d) - 0.5) * 2 * np.sqrt(3)\n",
    "    G = (G + G.T) / np.sqrt(2*d)   # make it symmetric and scale it\n",
    "\n",
    "    eigenvalues, _ = np.linalg.eigh(G)\n",
    "\n",
    "    plt.hist(eigenvalues, bins=50, density=True, label=f'd={d}', alpha=0.5)\n",
    "plt.xlabel('Eigenvalue')\n",
    "plt.ylabel('Density')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "4a47fef6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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AADTYRI0auZXe3iVa0B83ccBAEANkADBIdL/W3YT089++b7C+ll5myRJ7fIy7Q8wJgmYxuGcc84OwcZRsZS2E5+ToSP/mFtunYiOFzd0Hh82vsJ2lqZU/Puz1JS7rqtBhCjFnxsAAGA6JEAAAMB0SIAAAIDpkAABAADTIQECAACmQwIEAABMh2XwcLjSTUyP/G+pOwAADQ0jQAAAwHRIgAAAgOmQAAEAANMhAQIAAKbDJGjUmTL7fAGAiVT4O/BA04v/PZNb4bm3Hbq0v+Jn1451ZFj4HxIgAACcYEXOrgqPHXa9uKnqb0s61Vc4psMlMAAAYDokQAAAwHRIgAAAgOmQAAEAANMhAQIAAKZTowTov//9r6PjAAAAqDc1SoA6deqkAQMGaMOGDTp//ryjYwIAAKhTNUqAsrKy1K1bN8XFxclisegPf/iDPv/8c0fHBgAAUCdqlACFhYXphRde0LFjx7R69WodP35cffv21c0336wlS5bo5MmTjo4TAADAYWo1Cfqaa67RkCFD9NZbb2n+/Pnat2+fpk6dquDgYI0YMULHjx+vUjvLly9XSEiIPD09FR4eXulo0ssvv6w77rhDrVq1UqtWrRQZGVmmvmEYSkhIUGBgoJo2barIyEj98MMPtekqAAC4itQqAfryyy81fvx4BQYGasmSJZo6dar279+vlJQUHTt2TIMHD75iG5s2bVJcXJwSExOVlZWl7t27KyoqSidOnCi3flpamoYPH64PP/xQ6enpCg4O1qBBg3T06FFbnQULFujFF1/UqlWrlJGRoebNmysqKor5SgAAQJLkYhiGUd2TlixZojVr1mjv3r2655579Nhjj+mee+6Rq+ulfOrIkSMKCQnRL7/8Umlb4eHhuvXWW/XSSy9JkkpKShQcHKwnnnhCM2fOvGIsxcXFatWqlV566SWNGDFChmEoKChITz75pKZOnSpJys3NVUBAgNauXathw4aVaaOwsFCFhYW253l5eQoODlZubq68vb2r9J6YzodJdk/T/3tp475/uu6r05cObtn0inUO55yr0xgAoKaq8zvstyWdKtwMdcpd1zk0rqtBXl6efHx8qvT3u0aboa5cuVKPPvqoRo0apcDAwHLr+Pv769VXX620naKiImVmZio+Pt5W5urqqsjISKWnp1cplrNnz+rChQvy9fWVJB04cEBWq1WRkZG2Oj4+PgoPD1d6enq5CVBSUpJmz55dpddrTJamfH/FOlX5ApXXzuU7FQMAqq4+/wfNUX8HrkY1ugSWkpKiGTNmlEl+DMPQoUOHJEnu7u4aOXJkpe2cOnVKxcXFCggIsCsPCAiQ1WqtUiwzZsxQUFCQLeEpPa86bcbHxys3N9f2OHz4cJVeGwAANE41GgHq2LGjjh8/Ln9/f7vyn376SaGhoSouLnZIcFcyb948bdy4UWlpafL09KxxOx4eHvLw8HBgZAAAoCGr0QhQRdOG8vPzq5WI+Pn5yc3NTdnZ2Xbl2dnZslgslZ67aNEizZs3T++//766detmKy89ryZtAgAAc6jWCFBcXJwkycXFRQkJCWrWrJntWHFxsTIyMhQWFlbl9tzd3dWzZ0+lpqYqJiZG0sVJ0KmpqZo4cWKF5y1YsEDPP/+8tm3bpl69etkdCw0NlcViUWpqqi2WvLw8ZWRk6PHHH69ybAAA4OpVrQRox44dki6OAH399ddyd3e3HXN3d1f37t1tK6+qKi4uTiNHjlSvXr3Uu3dvLVu2TAUFBYqNjZUkjRgxQm3btlVS0sVVR/Pnz1dCQoLeeOMNhYSE2Ob1eHl5ycvLSy4uLpo8ebKee+45de7cWaGhoXrmmWcUFBRkS7IAAIC5VSsB+vDDDyVJsbGxeuGFFxyyRHzo0KE6efKkEhISZLVaFRYWpuTkZNsk5kOHDtktr1+5cqWKior0u9/9zq6dxMREPfvss5Kk6dOnq6CgQGPHjlVOTo769u2r5OTkWs0TMoMVO1eUW56Vd2nFVw/vofUVDgCY3j9d9+lI3qZyj63Y2VqSND5sfH2GdNWo0SToNWvWODSIiRMnVnjJKy0tze75wYMHr9iei4uL5syZozlz5jggOgAAcLWpcgI0ZMgQrV27Vt7e3hoyZEildTdv3lzrwAAAAOpKlRMgHx8fubi42H4GAABorKqcAF1+2cvRl8AAAADqU43mAJ07d06GYdiWwf/44496++23deONN2rQoEEODRAAADNrl5dZ/oED/9tT7Exuhedevm1RRXuKmVWNEqDBgwdryJAhGjdunHJyctS7d2+5u7vr1KlTWrJkCffbuYpl/W81wok63vAUAFA1K3J2VXjssOulTVVhr0Z3gs7KytIdd9whSfr73/8ui8WiH3/8UevXr9eLL77o0AABAAAcrUYJ0NmzZ9WiRQtJ0vvvv68hQ4bI1dVVt912m3788UeHBggAAOBoNUqAOnXqpC1btujw4cPatm2bbd7PiRMnHHJzRAAAgLpUowQoISFBU6dOVUhIiMLDwxURESHp4mjQLbfc4tAAAQAAHK1Gk6B/97vfqW/fvjp+/Li6d+9uKx84cKDuv/9+hwUHAABQF2qUAEmSxWKRxWKxK+vdu3etAwIAAKhrNUqACgoKNG/ePKWmpurEiRMqKSmxO/7f//7XIcEBAADUhRolQI899pi2b9+uRx55RIGBgbYtMgAAABqDGiVA//73v7V161bdfvvtjo4HAACgztVoFVirVq3k6+vr6FgAAADqRY0SoLlz5yohIUFnz551dDwAAAB1rkaXwBYvXqz9+/crICBAISEhatKkid3xrKwshwQHx7vt0F/tCz5sfennCvaTaZd3rg4jAgDUhzK//0td/ndgQHz9BNMA1CgBiomJcXAYQNUdziEhAwB+F9ZOjRKgxMRER8cBAABQb2o0B0iScnJy9Morryg+Pl4//fSTpIuXvo4ePeqw4AAAAOpCjUaAdu3apcjISPn4+OjgwYMaM2aMfH19tXnzZh06dEjr1693dJwAAAAOU6MRoLi4OI0aNUo//PCDPD09beX33HOPPvroI4cFBwAAUBdqlAB98cUX+sMf/lCmvG3btrJarbUOCgAAoC7V6BKYh4eH8vLyypR///33atOmTa2DguNl5W2SJJ1w3WdXviOHOVsAAPOp0QjQb3/7W82ZM0cXLlyQJLm4uOjQoUOaMWOGHnjgAYcGCAAA4Gg1SoAWL16s/Px8tWnTRufOnVO/fv3UqVMntWjRQs8//7yjYwQAAHCoGl0C8/HxUUpKij755BN99dVXys/PV48ePRQZGeno+AAAAByu2glQSUmJ1q5dq82bN+vgwYNycXFRaGioLBaLDMOQi4tLXcQJAADgMNW6BGYYhn7729/qscce09GjR9W1a1fddNNN+vHHHzVq1Cjdf//9dRUnAACAw1RrBGjt2rX66KOPlJqaqgEDBtgd++CDDxQTE6P169drxIgRDg0SAADU3D9/tQL4cqWrgce37FZf4TQI1RoBevPNNzVr1qwyyY8k3XnnnZo5c6Zef/11hwUHAABQF6qVAO3atUvR0dEVHr/77rv11Vdf1TooAACAulStBOinn35SQEBAhccDAgJ0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LVuqdevW+n//7/9p//79FfZx7dq1atmypV1ZaeyXe+edd9SjRw95enqqQ4cOmj17tn755ZeqvI0AHIgECECDkZeXp/vuu09du3ZVVlaW5s6dqxkzZtjVycnJ0Z133qlbbrlFX375pZKTk5Wdna3f//73dvXWrVun5s2bKyMjQwsWLNCcOXOUkpIiSXr44Yf17rvvKj8/31Z/27ZtOnv2rO6//35JUkFBgeLi4vTll18qNTVVrq6uuv/++1VSUlLj/v3nP//RiBEjNGnSJH3zzTf6y1/+orVr1+r555+vcZsAaqjO9pkHAMMwRo4cabi5uRnNmze3ezz//POGYRiGJOPtt982DMMwVq5cabRu3do4d+6c7fyXX37ZkGTs2LHDMAzDmDt3rjFo0CC71zh8+LAhydi7d69hGIbRr18/o2/fvnZ1br31VmPGjBmGYRjGhQsXDD8/P2P9+vW248OHDzeGDh1aYT9OnjxpSDK+/vprwzAM48CBA3ZxrVmzxvDx8bE75+233zYu/zU7cOBA409/+pNdnddee80IDAys8HUB1A3mAAGocwMGDNDKlSvtynx9fcvU27t3r7p16yZPT09bWe/eve3qfPXVV/rwww/l5eVV5vz9+/fruuuukyR169bN7lhgYKBOnDghSbrmmmv0+9//Xq+//roeeeQRFRQU6J133tHGjRtt9X/44QclJCQoIyNDp06dso38HDp0SDfffHN1um8X+yeffGI34lNcXKzz58/r7NmzatasWY3aBVB9JEAA6lzz5s3VqVMnh7SVn5+v++67T/Pnzy9zLDAw0PZzkyZN7I65uLjYXb56+OGH1a9fP504cUIpKSlq2rSpbWWaJN13331q3769Xn75ZQUFBamkpEQ333yzioqKyo3L1dVVhmHYlV24cKFM7LNnz9aQIUPKnH950geg7pEAAWgwunTpog0bNqiwsNC2SuyLL76wq9OjRw/94x//UEhIiK65pua/wvr06aPg4GBt2rRJ//73v/Xggw/akqbTp09r7969evnll3XHHXdIkj7++ONK22vTpo1+/vlnFRQUqHnz5pJU5h5BPXr00N69ex2WDAKoOSZBA6hzhYWFslqtdo/LV22Veuihh1RSUqKxY8fq22+/1bZt27Ro0SJJsq2mmjBhgn766ScNHz5cX3zxhfbv369t27YpNjZWxcXF1YrroYce0qpVq5SSkqKHH37YVt6qVSu1bt1af/3rX7Vv3z598MEHiouLq7St8PBwNWvWTLNmzdL+/fv1xhtvaO3atXZ1EhIStH79es2ePVt79uzRt99+q40bN+rpp5+uVtwAao8ECECdS05OVmBgoN2jb9++Zep5e3vr3Xff1c6dOxUWFqannnpKCQkJki5dIgoKCtInn3yi4uJiDRo0SF27dtXkyZPVsmVLubpW71faww8/rG+++UZt27bV7bffbit3dXXVxo0blZmZqZtvvllTpkzRwoULK23L19dXGzZs0HvvvaeuXbvqzTfftFt6L0lRUVH617/+pffff1+33nqrbrvtNi1dulTt27evVtwAas/F+PVFawBoQF5//XXFxsYqNzdXTZs2dXY4AK4SzAEC0KCsX79eHTp0UNu2bfXVV19pxowZ+v3vf0/yA8ChSIAANChWq1UJCQmyWq0KDAzUgw8+yI0CATgcl8AAAIDpMAkaAACYDgkQAAAwHRIgAABgOiRAAADAdEiAAACA6ZAAAQAA0yEBAgAApkMCBAAATOf/A9iDmJ2v3CB7AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "for d in [500, 1000, 2000]:\n",
    "    G = np.random.choice([-1, 1], size=(d, d))\n",
    "    G = (G + G.T) / np.sqrt(2*d)   # make it symmetric and scale it\n",
    "\n",
    "    eigenvalues, _ = np.linalg.eigh(G)\n",
    "\n",
    "    plt.hist(eigenvalues, bins=50, density=True, label=f'd={d}', alpha=0.5)\n",
    "plt.xlabel('Eigenvalue')\n",
    "plt.ylabel('Density')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "781eba2a",
   "metadata": {},
   "source": [
    "Exercise 4.2.7"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "f999ea86",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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eqCIee94fEwAaI+Ks24yuwR0IE35+236KTAAAIDWRgACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWY/qNEAEA1lXffdG4NxBaAzNAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcjqZXQAAAOjYIua94/a6OOsmkyr5HjNAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADActpEAFq+fLkiIiLk5+enuLg4bd269ZL933zzTQ0aNEh+fn4aOnSo3n33Xbf1hmEoPT1doaGh6ty5sxISErRv376W3AUAANCOmB6A8vPzZbfblZGRoR07dmjYsGFKTEzU8ePH6+3/97//XdOmTdO9996rzz77TFOmTNGUKVP0xRdfuPosWrRIL730knJzc7VlyxZ17dpViYmJ+vbbb1trtwAAQBtmegBaunSpZs6cqdTUVA0ePFi5ubnq0qWLVq5cWW//F198UUlJSXrsscd03XXXaeHChRo+fLiWLVsm6bvZn+zsbM2fP1+TJ09WdHS08vLydPToUW3cuLEV9wwAALRVpgagmpoabd++XQkJCa42Ly8vJSQkqKioqN5tioqK3PpLUmJioqv/wYMH5XQ63foEBAQoLi6uwTEBAIC1dDLzzcvKylRbW6vg4GC39uDgYO3Zs6febZxOZ739nU6na/35tob6XKi6ulrV1dWu1+Xl5ZKkioqKJuxN49VVn22RcQGgI2ip370wz4V/91rq3/j8uIZhXLavqQGorcjMzNSCBQsuag8PDzehGgCwtoBssytAS2vpf+MzZ84oICDgkn1MDUBBQUHy9vZWaWmpW3tpaalCQkLq3SYkJOSS/c//t7S0VKGhoW59YmJi6h0zLS1Ndrvd9bqurk6nTp3S1VdfLZvN1uT9ulBFRYXCw8N16NAh+fv7X/F4Vsax9ByOpedwLD2HY+k5VjyWhmHozJkzCgsLu2xfUwOQj4+PRowYIYfDoSlTpkj6Lnw4HA7Nnj273m3i4+PlcDg0Z84cV9vmzZsVHx8vSYqM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p0+f1k9+8hPdcMMN2rZtmwoKClRaWqq77rrLrd+aNWvUtWtXbdmyRYsWLdJvfvMbbd68WZJ0zz336E9/+pMqKytd/Tdt2qSzZ8/q1ltvlSRVVVXJbrdr27Ztcjgc8vLy0q233qq6urpm799f//pXTZ8+XQ8//LB2796tV199VatXr9azzz7b7DEBNJPZT2MF0LGlpKQY3t7eRteuXd2WZ5991jCM754CvmHDBsMwDCMnJ8e4+uqrjW+++ca1/YoVKwxJxmeffWYYhmEsXLjQmDhxott7HDp0yJBk7N271zAMwxg3bpwxZswYtz4jR4405s6daxiGYZw7d84ICgoy8vLyXOunTZtmJCcnN7gfJ06cMCQZ//jHPwzDMIyDBw+61bVq1SojICDAbZsNGzYY//5rdsKECcZzzz3n1ue1114zQkNDG3xfAC2Da4AAtLjx48crJyfHrS0wMPCifnv37lV0dLT8/PxcbaNGjXLr8/nnn+uDDz5Qt27dLtr+wIED+sEPfiBJio6OdlsXGhqq48ePS5I6deqku+66S6+//rp+8YtfqKqqSm+//bbWr1/v6r9v3z6lp6dry5YtKisrc838lJSUaMiQIU3ZfbfaP/74Y7cZn9raWn377bc6e/asunTp0qxxATQdAQhAi+vatauioqI8MlZlZaVuvvlmPf/88xetCw0NdX191VVXua2z2Wxup6/uuecejRs3TsePH9fmzZvVuXNn1yfTJOnmm29Wv379tGLFCoWFhamurk5DhgxRTU1NvXV5eXnJMAy3tnPnzl1U+4IFC3TbbbddtP2/hz4ALY8ABKDNuPbaa7V27VpVV1e7PiX26aefuvUZPny4/vu//1sRERHq1Kn5v8JGjx6t8PBw5efn67333tOdd97pCk0nT57U3r17tWLFCo0dO1aS9Le//e2S4/Xq1UtnzpxRVVWVunbtKkkX3SNo+PDh2rt3r8fCIIDm4yJoAC2uurpaTqfTbfn3T22dd/fdd6uurk7333+/vvrqK23atElLliyRJNenqR588EGdOnVK06ZN06effqoDBw5o06ZNSk1NVW1tbZPquvvuu5Wbm6vNmzfrnnvucbX37NlTV199tX73u99p//79+stf/iK73X7JseLi4tSlSxc98cQTOnDggNatW6fVq1e79UlPT1deXp4WLFigL7/8Ul999ZXWr1+v+fPnN6luAFeOAASgxRUUFCg0NNRtGTNmzEX9/P399ac//Uk7d+5UTEyMnnzySaWnp0v6/hRRWFiYPv74Y9XW1mrixIkaOnSo5syZox49esjLq2m/0u655x7t3r1bffr00Y9+9CNXu5eXl9avX6/t27dryJAheuSRR7R48eJLjhUYGKi1a9fq3Xff1dChQ/XGG2+4ffRekhITE/XnP/9Z77//vkaOHKkf/vCH+u1vf6t+/fo1qW4AV85mXHjSGgDakNdff12pqakqLy9X586dzS4HQAfBNUAA2pS8vDz1799fffr00eeff665c+fqrrvuIvwA8CgCEIA2xel0Kj09XU6nU6Ghobrzzju5USAAj+MUGAAAsBwuggYAAJZDAAIAAJZDAAIAAJZDAAIAAJZDAAIAAJZDAAIAAJZDAAIAAJZDAAIAAJZDAAIAAJbz/wH7rcs9veSd/wAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "d = 1000  # dimension of the data\n",
    "lambd = 10.\n",
    "\n",
    "G = np.random.normal(size=(d, d))\n",
    "G = (G + G.T) / np.sqrt(2*d)   # make it symmetric and scale it\n",
    "u = np.random.normal(size=d)\n",
    "\n",
    "Y = G + np.outer(u, u)*np.sqrt(lambd)/d\n",
    "eigenvalues, _ = np.linalg.eigh(Y)\n",
    "\n",
    "plt.hist(eigenvalues, bins=100, density=True)\n",
    "plt.xlabel('Eigenvalue')\n",
    "plt.ylabel('Density')\n",
    "plt.title(f'λ={lambd}')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bfca5775",
   "metadata": {},
   "source": [
    "Exercise 4.2.8"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "eb776067",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAHLCAYAAADSuXIVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAABYsElEQVR4nO3dd3gU1f7H8ffsJqSRhE4INUDoJfSOoiiKiqhXivEKYrkq6lXE9kNEbIiKYhcsCAICKiAigoAgShEQRBSlSJFLi1ISQiAku/P7Y5MlS3rYZHaTz+t58uTMmTNzvruTZL85c2bGME3TRERERMQP2awOQERERKSolMiIiIiI31IiIyIiIn5LiYyIiIj4LSUyIiIi4reUyIiIiIjfUiIjIiIifkuJjIiIiPgtJTIiIiLit5TIiEiu6tWrx9ChQ60Oo9gYhsFTTz1ldRiWeOqppwgMDKR9+/Zs27bN6nBEikyJjEgJMQyjQF8rV660OlQpA66//nomTJjAzp07ueuuu6wOR6TIAqwOQKSs+Pjjjz2Wp02bxtKlS7PVN23atCTDytP27dux2fT/TmnUqlUrWrVqRVJSEqNHj2bfvn3UrVvX6rBECk2JjEgJufnmmz2W161bx9KlS7PV+5KgoCCrQ5BiNnjwYEaPHs2cOXN4+OGHrQ5HpND0r5aIDzl16hQPPfQQtWvXJigoiMaNG/Pyyy9z/kPqDcPg3nvvZcaMGTRu3Jjg4GDatWvHqlWrCtRPamoqY8aMoWHDhgQFBVG7dm0eeeQRUlNTPdrlNEfml19+4aKLLiIkJIRatWrx7LPPMmXKFAzDYO/evR5tv/76a3r06EFYWBjh4eFcddVV/Pbbbx5thg4dSvny5Tlw4AD9+/enfPnyVK1alZEjR+JwOABIS0ujUqVK3HrrrdleS1JSEsHBwYwcORKAs2fP8uSTT9KuXTsiIyMJCwujR48erFixIt/3ZejQodSrVy9b/VNPPYVhGNnqp0+fTrt27QgJCaFSpUoMGjSI/fv3e7TZuXMnN9xwA1FRUQQHB1OrVi0GDRpEYmJirnHce++9lC9fnpSUlGzrBg8eTFRUlPu92bhxI3369KFKlSqEhIQQExPDsGHD8n2tmaKjowkNDWX27NkF3kbEl2hERsRHmKZJv379WLFiBbfddhtxcXEsWbKEhx9+mAMHDvDqq696tP/uu++YPXs2999/P0FBQbz99ttcccUVrF+/nhYtWuTaj9PppF+/fvzwww/ceeedNG3alK1bt/Lqq6+yY8cO5s+fn+u2Bw4coFevXhiGweOPP05YWBjvv/9+jiM3H3/8MUOGDKFPnz6MHz+elJQU3nnnHbp3787mzZs9EgaHw0GfPn3o1KkTL7/8MsuWLWPChAk0aNCAu+++m8DAQK677jrmzp3LpEmTKFeunHvb+fPnk5qayqBBgwBXYvP+++8zePBg7rjjDk6ePMkHH3xAnz59WL9+PXFxcQU7IPl47rnnGD16NAMGDOD222/n77//5o033qBnz55s3ryZChUqcPbsWfr06UNqair33XcfUVFRHDhwgIULF3LixAkiIyNz3PfAgQN56623+Oqrr7jxxhvd9SkpKXz55ZcMHToUu91OQkICl19+OVWrVuWxxx6jQoUK7N27l7lz5xb4dcyePZuUlBR++ukndu/eTf369S/4vREpUaaIWGL48OFm1l/B+fPnm4D57LPPerT717/+ZRqGYe7atctdB5iAuXHjRnfdvn37zODgYPO6667Ls9+PP/7YtNls5vfff+9R/+6775qAuXr1andd3bp1zSFDhriX77vvPtMwDHPz5s3uuqNHj5qVKlUyAXPPnj2maZrmyZMnzQoVKph33HGHRx+HDx82IyMjPeqHDBliAubTTz/t0bZNmzZmu3bt3MtLliwxAfPLL7/0aNe3b1+zfv367uX09HQzNTXVo83x48fN6tWrm8OGDfOoB8wxY8Z4xFK3bl3zfGPGjPE4Vnv37jXtdrv53HPPebTbunWrGRAQ4K7fvHmzCZiffvpptn3mxel0mjVr1jRvuOEGj/o5c+aYgLlq1SrTNE1z3rx5JmBu2LChUPvPqmPHjma1atVMwBw3blyR9yNiFZ1aEvERixYtwm63c//993vUP/TQQ5imyddff+1R36VLF9q1a+derlOnDtdeey1Llixxn3bIyaeffkrTpk1p0qQJ//zzj/vrkksuAcjzFMzixYvp0qWLx6hGpUqViI+P92i3dOlSTpw4weDBgz36sNvtdOrUKcc+zr9ypkePHuzevdu9fMkll1ClShWPUyDHjx9n6dKlDBw40F1nt9vdIzZOp5Njx46Rnp5O+/bt2bRpU66vrTDmzp2L0+lkwIABHq8vKiqK2NhY9+vLHHFZsmRJjqeJcmMYBjfeeCOLFi0iOTnZXT979mxq1qxJ9+7dAahQoQIACxcuJC0trdCvY9OmTaxfv55HH32UNm3aMGfOnELvQ8RqSmREfMS+ffuIjo4mPDzcoz7zKqZ9+/Z51MfGxmbbR6NGjUhJSeHvv//OtZ+dO3fy22+/UbVqVY+vRo0aAZCQkJBnjA0bNsxWf37dzp07AVfycX4/33zzTbY+goODqVq1qkddxYoVOX78uHs5ICCAG264gS+++MI9l2fu3LmkpaV5JDIAU6dOpVWrVgQHB1O5cmWqVq3KV199lee8lMLYuXMnpmkSGxub7fX9/vvv7tcXExPDiBEjeP/996lSpQp9+vThrbfeKlAcAwcO5PTp0yxYsACA5ORkFi1axI033uier3PRRRdxww03MHbsWKpUqcK1117LlClTss11ys0777xDSEgIt956KwMHDmTz5s3uYyfiLzRHRqSMcTqdtGzZkldeeSXH9bVr1/ZKH+CaJxMVFZVtfUCA558eu91eoP0OGjSISZMm8fXXX9O/f3/mzJlDkyZNaN26tbvN9OnTGTp0KP379+fhhx+mWrVq2O12xo0bx59//pnn/nOa0AtkG+FyOp0YhsHXX3+dY+zly5d3lydMmMDQoUP54osv+Oabb7j//vsZN24c69ato1atWrnG0rlzZ+rVq8ecOXO46aab+PLLLzl9+rRH0mYYBp999hnr1q3jyy+/ZMmSJQwbNowJEyawbt06jzjOl5iYyCeffMJNN91ExYoVGTBgAI899hhz5sxh1KhRuW4n4muUyIj4iLp167Js2TJOnjzpMSrzxx9/uNdnldN/zjt27CA0NDTb6EZWDRo0YMuWLVx66aW5fnDnFeOuXbuy1Z9f16BBAwCqVatG7969C9VHXnr27EmNGjWYPXs23bt359tvv832ofvZZ59Rv3595s6d6/H6xowZk+/+K1asyIkTJ7LVnz8a1qBBA0zTJCYmxj2SlZeWLVvSsmVLnnjiCdasWUO3bt149913efbZZ/PcbsCAAbz22mskJSUxe/Zs6tWrR+fOnbO169y5M507d+a5555j5syZxMfHM2vWLG6//fZc9z1t2jROnTrF8OHDAdfoUceOHZXIiN/RqSURH9G3b18cDgdvvvmmR/2rr76KYRhceeWVHvVr1671mPOxf/9+vvjiCy6//PI8RzgGDBjAgQMHeO+997KtO336NKdOncp12z59+rB27Vp+/vlnd92xY8eYMWNGtnYRERE8//zzOc7dyOvUV15sNhv/+te/+PLLL/n4449JT0/Pdlop87WbWS5Z//HHH1m7dm2++2/QoAGJiYn88ssv7rpDhw4xb948j3bXX389drudsWPHZrs03jRNjh49CriuoEpPT/dY37JlS2w2W4FO/wwcOJDU1FSmTp3K4sWLGTBggMf648ePZ+s/c/5Sfvt/99136dKlC23atPHo75dffnEnzyJ+wcKJxiJl2vlXLTkcDrNXr16mYRjmnXfeab711lvmtddeawLmAw884LEtYLZo0cKsUqWK+fTTT5vjx48369atawYHB5tbtmzJs1+Hw2H27dvXNAzDHDRokPnGG2+YEydONO+66y6zUqVKHlfAnH/V0l9//WVWqFDBrFKlijl27Fjz5ZdfNps0aWLGxcWZgLl371532xkzZpg2m81s0aKF+eyzz5qTJk0yR40aZcbFxZnDhw93txsyZIgZFhaWLc7zrxTK9MMPP5iAGR4ebrZs2TLb+g8//NAEzH79+pmTJk0yH3vsMbNChQpm8+bNs12RxHlXLf3zzz9mWFiYWb9+fXPixInm888/b9auXdts27ZttljGjRtnAmbXrl3NF1980XznnXfMRx55xIyNjTVfeukl0zRdVxXVrFnTfOCBB8y3337bfP31180OHTqYgYGB5tq1a3M+QOdp2LChGR4ebgLmTz/95LHu1VdfNWNjY81HHnnEnDRpkvnyyy+bjRs3NiMiIszdu3fnus+VK1eagDl9+nSP+v3795uGYZhjx44tUGwivkCJjIhFzk9kTNN12fKDDz5oRkdHm4GBge4PRafT6dEOMIcPH25Onz7djI2NNYOCgsw2bdqYK1asKFDfZ8+eNcePH282b97cDAoKMitWrGi2a9fOHDt2rJmYmOhud34iY5quS4p79OhhBgUFmbVq1TLHjRtnvv766yZgHj582KPtihUrzD59+piRkZFmcHCw2aBBA3Po0KEel40XNpFxOp1m7dq1c7xUPXP9888/b9atW9f9vixcuDDHS6vPT2RM0zS/+eYbs0WLFma5cuXMxo0bm9OnT881ls8//9zs3r27GRYWZoaFhZlNmjQxhw8fbm7fvt00TdPcvXu3OWzYMLNBgwZmcHCwWalSJbNXr17msmXLsu0rN6NGjTIBs2HDhtnWbdq0yRw8eLBZp04dMygoyKxWrZp59dVXe7y/ORk4cKBZtWrVbJepm6ZpduvWzWzevHmB4xOxmmGa541LiojPMwyD4cOHZzsNZZUHHniASZMmkZycXOCJuyIi3qA5MiJSKKdPn/ZYPnr0KB9//DHdu3dXEiMiJU5XLYlIoXTp0oWLL76Ypk2bcuTIET744AP3E5RFREqaEhkRKZS+ffvy2WefMXnyZAzDoG3btnzwwQf07NnT6tBEpAzSHBkRERHxW5ojIyIiIn5LiYyIiIj4rVI/R8bpdHLw4EHCw8MLfTt2ERERsYZpmpw8eZLo6GhsttzHXUp9InPw4EGvPARPRERESt7+/fvzfMBqqU9kMh++t3//fiIiIiyORkRERAoiKSmJ2rVrezxENyelPpHJPJ0UERGhREZERMTP5DctRJN9RURExG8pkRERERG/VepPLRWUw+EgLS3N6jCkFAsMDNSziEREvKzMJzKmaXL48GFOnDhhdShSBlSoUIGoqCjdCkBExEvKfCKTmcRUq1aN0NBQfcBIsTBNk5SUFBISEgCoUaOGxRGJiJQOZTqRcTgc7iSmcuXKVocjpVxISAgACQkJVKtWTaeZRES8oExP9s2cExMaGmpxJFJWZP6saT6WiIh3lOlEJpNOJ0lJ0c+aiIh3lelTSyIiIlJETgfsWwPJR6B8dajbFWwlf8pciYyIiIgUzrYFsPhRSDp4ri4iGq4YD836lWgoOrXkBQ6nydo/j/LFzwdY++dRHE7T6pBK1EcffUSFChWsDqNInnrqKeLi4qwOQ0TEf2xbAHNu8UxiAJIOueq3LSjRcDQic4EW/3qIsV9u41DiGXddjchgxlzTjCtaeP8S2/zmWIwZM4annnrK6/3mZeDAgfTt27dE+xQREQs4Ha6RGHL6h90EDFj8GDS5qsROMymRuQCLfz3E3dM3ZTuchxPPcPf0Tbxzc1uvJzOHDh1yl2fPns2TTz7J9u3b3XXly5f3an8FERIS4r60WERESrF9a7KPxHgwIemAq11MjxIJSaeWsjBNk5Sz6QX6OnkmjTELfss1JwV4asE2Tp5JK9D+TLNgp6OioqLcX5GRkRiG4V6uVq0ar7zyCrVq1SIoKIi4uDgWL17s3nbv3r0YhsGsWbPo2rUrwcHBtGjRgu+++y7PPlNTUxk5ciQ1a9YkLCyMTp06sXLlSvf6nE4tPfvss1SrVo3w8HBuv/12HnvssWyncN5//32aNm1KcHAwTZo04e23384W69y5c+nVqxehoaG0bt2atWvXAq7Hu4eEhPD111977HPevHmEh4eTkpICwKOPPkqjRo0IDQ2lfv36jB49Os9Lny+++GIeeOABj7r+/fszdOjQAr8fIiKlVvIR77bzAo3IZHE6zUGzJ5d4ZV8mcDjpDC2f+qZA7bc93YfQchd2OF577TUmTJjApEmTaNOmDR9++CH9+vXjt99+IzY21t3u4YcfZuLEiTRr1oxXXnmFa665hj179uR6U8B7772Xbdu2MWvWLKKjo5k3bx5XXHEFW7du9dhvphkzZvDcc8/x9ttv061bN2bNmsWECROIiYnxaPPkk0/y5ptv0qZNGzZv3swdd9xBWFgYQ4YMcbcbNWoUL7/8MrGxsYwaNYrBgweza9cuIiIiuPrqq5k5cyZXXnmlx3779+/vvl9LeHg4H330EdHR0WzdupU77riD8PBwHnnkkSK/z4V9P0RESo3y1b3bzgs0IlOKvPzyyzz66KMMGjSIxo0bM378eOLi4pg4caJHu3vvvZcbbriBpk2b8s477xAZGckHH3yQ4z7/+usvpkyZwqeffkqPHj1o0KABI0eOpHv37kyZMiXHbd544w1uu+02br31Vho1asSTTz5Jy5YtPdqMGTOGCRMmcP311xMTE8P111/Pgw8+yKRJkzzajRw5kquuuopGjRoxduxY9u3bx65duwCIj49n/vz57tGXpKQkvvrqK+Lj493bP/HEE3Tt2pV69epxzTXXMHLkSObMmVOo9/VC3w8RkVKjblfX1UnkNl/TgIiarnYlRCMyWYQE2tn2dJ8CtV2/5xhDp2zIt91Ht3agY0ylAvV9IZKSkjh48CDdunXzqO/WrRtbtmzxqOvSpYu7HBAQQPv27fn9999z3O/WrVtxOBw0atTIoz41NTXXEZzt27dzzz33eNR17NiRb7/9FoBTp07x559/ctttt3HHHXe426SnpxMZGemxXatWrdzlzOcTJSQk0KRJE/r27UtgYCALFixg0KBBfP7550RERNC7d2/3NrNnz+b111/nzz//JDk5mfT0dCIiInKMuyCK8n6IiJQaNrvrEus5t+SwMiO5ueKFEr2fjBKZLAzDKPDpnR6xVakRGczh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/aBGRLvqm/Urlm6HDx/O9OnTmTlzJuHh4Rw+fJjDhw9z+vTpAu/jrrvuYufOnTz88MNs376dmTNn8tFHH+W5Te/evenSpQv9+/fnm2++Ye/evaxZs4ZRo0axcePGHLe57777GDduHF988QXbt2/nv//9L8ePH3ePqISHhzNy5EgefPBBpk6dyp9//smmTZt44403mDp1aoFfD8D111/PyZMnufvuu+nVqxfR0ecmbsfGxrJx40aWLFnCjh07GD16NBs2bMhzf5dccgkff/wx33//PVu3bmXIkCHY7ecS06K8HyIifsl9/5i21saRA43IXKhm/aDJVa45M8lHoHx115yYYjqdBK6JugAXX3yxR/2UKVPynbCbqU6dOnz++ec8+OCDvPHGG3Ts2JHnn3+eYcOG5bqNYRgsWrSIUaNGceutt/L3338TFRVFz549qV69eo7bPProoxw+fJhbbrkFu93OnXfeSZ8+fTwSgmeeeYaqVasybtw4du/eTYUKFWjbti3/93//V6DXkik8PJxrrrmGOXPm8OGHH3qs+89//sPmzZsZOHAghmEwePBg7rnnHr7++utc9/f444+zZ88err76aiIjI3nmmWc8RmSK8n6IiPilzESmlu/cCC+TYZ4/CaCUSUpKIjIyksTERCIiIjzWnTlzhj179hATE0NwsG88M6K0czqdNG3alAEDBnhcKl1W6GdORPzSqy0h8S8Y8iXE9CyRLvP6/M5KIzJSrPbt28c333zDRRddRGpqKm+++SZ79uxx399FRER8XHKCK4nBgBpxVkeTjaVzZFatWsU111xDdHQ0hmEwf/58j/WmafLkk09So0YNQkJC6N27Nzt37rQmWCkSm83GRx99RIcOHejWrRtbt25l2bJlNG3a1OrQRESkIDIvu67aGIJzHxmxiqWJzKlTp2jdujVvvfVWjutffPFFXn/9dd59911+/PFHwsLC6NOnj/smaOL7ateuzerVq0lMTCQpKYk1a9a4r2ASERE/cMA3b4SXydJTS1deeSVXXnlljutM02TixIk88cQTXHvttQBMmzaN6tWrM3/+fI9La7NKTU0lNTXVvZyUlOT9wEVERMoKH75iCXz48us9e/Zw+PBhevfu7a6LjIykU6dOrF27Ntftxo0bR2RkpPurdu38n3VUyuc7iw/Rz5qI+BXTzJLI+OaIjM8mMocP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90lMYRT5qqXznT59mtdff52aNWt6a5ciIiKSm1Uvu753/A80vcY1sbd8ddfpJJs9721LkSIlMhUrVvSY7GuaJidPniQ0NJTp06d7LTgRERHJwb41sO8HsJeDbv+FyLI7iFCkRObVV1/1SGRsNhtVq1alU6dOVKxYdh4dLiIiYolVL7m+x8WX6SQGipjIDB061MthiIiISIH87yf481sw7ND9AaujsVyBE5lffvmlwDtt1apVkYIRERGRfHyfMTem9SCoWM/SUHxBgROZuLg4DMMgv6u1DcPQDfFERESKw+GtsH0RYED3EVZH4xMKnMjs2bOnOOMQERGR/GReqdTieqjS0NpYfESBE5m6desWZxwiIiKSl7+3u26CB9DjIWtj8SEXdB+Zbdu28ddff3H27FmP+n79ysZNeERERErM968AJjS5Gqo3tzoan1GkRGb37t1cd911bN261WPeTOYl2ZojIyIi4kXHdsPWT13lniOtjcXHFOkRBf/973+JiYkhISGB0NBQfvvtN1atWkX79u1ZuXKll0MUEREp4354FUwHNLwMottYHY1PKdKIzNq1a/n222+pUqUKNpsNm81G9+7dGTduHPfffz+bN2/2dpwiIiJl04n98PMnrnLPh62NxQcVaUTG4XAQHh4OQJUqVTh40PUY8bp167J9+3bvRSciIlLWrXkdnGlQrwfU6WR1ND6nSCMyLVq0YMuWLcTExNCpUydefPFFypUrx+TJk6lfv763YxQRESmbTh6Bn6a6yhc9Ym0sPqpIicwTTzzBqVOnAHj66ae5+uqr6dGjB5UrV2b27NleDVBERKTMWvM6OFKhdifXiIxkU6REpk+fPu5yw4YN+eOPPzh27Fi2p2KLiIhIEZ06Chs/dJV7Pgz6fM1RkebITJ8+3T0ik6lSpUpKYkRERLxl3duQlgI14qBhb6uj8VlFSmQefPBBqlevzk033cSiRYt03xgRERFvOn0C1k92lTUak6ciJTKHDh1i1qxZGIbBgAEDqFGjBsOHD2fNmjXejk9ERKTsWT8ZUpOgWjNo3NfqaHxakRKZgIAArr76ambMmEFCQgKvvvoqe/fupVevXjRo0MDbMYqIiJQdqSddp5XA9UwlW5E+qsuMC3rWEkBoaCh9+vTh+PHj7Nu3j99//90bcYmIiJRNGz+E08ehckNofp3V0fi8Iqd5KSkp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3zn/VlKffUpkgFWrVnHNNdcQHR2NYRjMnz8/W5u33nqLevXqERwcTKdOnVi/fn2R+vrpp59wOBzUrl37AqOWrEryGErxu9DjefDgQWrWrOlerlmzJgcOHCiJ0CWDfif9nzePYXF+9imRAU6dOkXr1q156623clw/e/ZsRowYwZgxY9i0aROtW7emT58+JCQkuNvExcXRokWLbF8HDx50tzl27Bi33HILkydPLvbXVNaU1DGUkuGN4ynW0jH0f946hsX+2WeKB8CcN2+eR13Hjh3N4cOHu5cdDocZHR1tjhs3rsD7PXPmjNmjRw9z2rRp3gpVclFcx9A0TXPFihXmDTfc4I0wpYCKcjxXr15t9u/f373+v//9rzljxowSiVeyu5DfSf3O+YaiHsOS+OzTiEw+zp49y08//UTv3r3ddTabjd69e7N27doC7cM0TYYOHcoll1zCv//97+IKVXLhjWMovqMgx7Njx478+uuvHDhwgOTkZL7++mv69OljVchyHv1O+r+CHMOS+uxTIpOPf/75B4fDQfXq1T3qq1evzuHDhwu0j9WrVzN79mzmz59PXFwccXFxbN26tTjClRx44xgC9O7dmxtvvJFFixZRq1Yt/cG1SEGOZ0BAABMmTKBXr17ExcXx0EMP6YolH1LQ30n9zvmughzDkvrsC/D6HiWb7t2743Q6rQ5DLtCyZcusDkEKoV+/fvTr18/qMOQC6HfOv5XUZ59GZPJRpUoV7HY7R44c8ag/cuQIUVFRFkUlhaFjWLroePo/HUP/50vHUIlMPsqVK0e7du1Yvny5u87pdLJ8+XK6dOliYWRSUDqGpYuOp//TMfR/vnQMdWoJSE5OZteuXe7lPXv28PPPP1OpUiXq1KnDiBEjGDJkCO3bt6djx45MnDiRU6dOceutt1oYtWSlY1i66Hj6Px1D/+c3x7DYrofyIytWrDCBbF9Dhgxxt3njjTfMOnXqmOXKlTM7duxorlu3zrqAJRsdw9JFx9P/6Rj6P385hnrWkoiIiPgtzZERERERv6VERkRERPyWEhkRERHxW0pkRERExG8pkRERERG/pURGRERE/JYSGREREfFbSmRERETEbymREREREb+lREZE/M5TTz1FcHAwAwYMID093epwRMRCekSBiPid5ORkNmzYwJVXXsmUKVMYPHiw1SGJiEWUyIiI3xo6dCgJCQksWrTI6lBExCI6tSQifqtz584sXbqUv//+2+pQRMQiSmRExG999NFHpKenM2vWLKtDERGL6NSSiPiltWvX0q1bN66++moSEhJYt26d1SGJiAWUyIiIXxo4cCCnT59m7NixtG3blp07d9KwYUOrwxKREqZTSyLid/bv38/cuXMZMWIEbdq0oXnz5syYMcPqsETEAkpkRMTvvPnmm7Rq1YqLL74YgJtvvlmJjEgZpURGRPxKSkoK7733HiNGjHDXxcfHs2vXLtavX29hZCJiBSUyIuJXpk2bRmhoKAMGDHDX1a5dm4svvpjp06dbGJmIWEGTfUVERMRvaURGRERE/JYSGREREfFbSmRERETEbymREREREb+lREZERET8lhIZERER8VtKZERERMRvKZERERERv6VERkRERPyWEhkRERHxW0pkRERExG/9P7BlCTA+5PPKAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "d = 1000  # dimension of the data\n",
    "lambd_list = np.logspace(-2, 2, 16)\n",
    "top_eigenvalues = np.zeros((len(lambd_list), 2))\n",
    "\n",
    "for i, lambd in enumerate(lambd_list):\n",
    "     G = np.random.normal(size=(d, d))\n",
    "     G = (G + G.T) / np.sqrt(2*d)   # make it symmetric and scale it\n",
    "     u = np.random.normal(size=d)\n",
    "\n",
    "     Y = G + np.outer(u, u)*np.sqrt(lambd)/d\n",
    "     eigenvalues, _ = np.linalg.eigh(Y)\n",
    "     top_eigenvalues[i] = eigenvalues[-2:]\n",
    "\n",
    "plt.semilogx(lambd_list, top_eigenvalues[:, 0], label='Top eigenvalue', marker='o')\n",
    "plt.semilogx(lambd_list, top_eigenvalues[:, 1], label='2nd eigenvalue', marker='o')\n",
    "plt.xlabel('λ')\n",
    "plt.ylabel('Eigenvalue')\n",
    "plt.legend()\n",
    "plt.title('Top eigenvalues vs λ')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f34ace20",
   "metadata": {},
   "source": [
    "Exercise 4.2.9"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "5a0b5293",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "d = 1000  # dimension of the data\n",
    "lambd_list = np.logspace(-2, 2, 16)\n",
    "cosine_similarities = np.zeros(len(lambd_list))\n",
    "\n",
    "for i, lambd in enumerate(lambd_list):\n",
    "     G = np.random.normal(size=(d, d))\n",
    "     G = (G + G.T) / np.sqrt(2*d)   # make it symmetric and scale it\n",
    "     u = np.random.normal(size=d)\n",
    "\n",
    "     Y = G + np.outer(u, u)*np.sqrt(lambd)/d\n",
    "     eigenvalues, eigenvectors = np.linalg.eigh(Y)\n",
    "     cosine_similarities[i] = np.abs(np.dot(eigenvectors[:, -1], u)) / (np.linalg.norm(eigenvectors[:, -1]) * np.linalg.norm(u))\n",
    "\n",
    "plt.semilogx(lambd_list, cosine_similarities, label='Cosine similarity', marker='o')\n",
    "plt.xlabel('λ')\n",
    "plt.ylabel('Cosine similarity')\n",
    "plt.legend()\n",
    "plt.title('Cosine similarity vs λ')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6483e144",
   "metadata": {},
   "source": [
    "Exercise 4.3.11"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "3da2e309",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHLCAYAAAA0kLlRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAACWbUlEQVR4nOzdd3hVRfrA8e+5Nb33AiGB0DtSREUEwV7Wgm1F/NnFxroq667IWrDssrgu9q6oWFldFREQBAXpvSWQkN7LTW7Kbef3x01uCOnJTYP38zx5cjNnzpy5EZM3M+/MKKqqqgghhBBCnCI03d0BIYQQQgh3kuBGCCGEEKcUCW6EEEIIcUqR4EYIIYQQpxQJboQQQghxSpHgRgghhBCnFAluhBBCCHFKkeBGCCGEEKcUCW6EEEIIcUqR4EaI04yiKDz55JPd3Y1G3XLLLcTFxbm1zXPPPZdzzz3X9XVqaiqKovDee++59TlPPvkkiqK4tc3uUPv9iYqKYunSpd3dHSHaRYIbIbrR0aNHufPOO4mPj8fDwwM/Pz8mT57MSy+9RGVlZXd3T3TQs88+y4oVK7q7G20SGhrK+++/T//+/bn//vtJSkrq7i4J0WaKnC0lRPf47rvvuOaaazAajdx8880MGzYMi8XCxo0b+fLLL7nlllt444033P7cqqoqdDodOp3O7W13lNVqxeFwYDQa3damxWIBwGAwAM6RiX79+vHuu+9yyy23uO05NpsNm82Gh4eHq8zHx4err77a7aNEXSEtLY24uDgWLFjAggULurs7QrRJz/vpJsRpICUlheuuu46+ffuydu1aIiMjXdfuvfdekpOT+e677zrl2Sf+8u1p9Hq929usDWo6i9lsxtvbu8cGjO3Vp08fJk+ezGeffSbBjeh1ZFpKiG7wwgsvUF5ezttvv10vsKnVv39/HnjgAdfXNpuNp556ioSEBIxGI3FxcfzlL3+hurq63n3btm1j5syZhISE4OnpSb9+/bj11lvr1Tk556Y2VyQ5OZlbbrmFgIAA/P39mTNnDhUVFQ369tFHHzF27Fg8PT0JCgriuuuuIz09vcX3XFZWxoMPPkhcXBxGo5GwsDDOP/98duzY4apzcs5Nbf7HP/7xD5YuXUp8fDxeXl7MmDGD9PR0VFXlqaeeIiYmBk9PTy6//HKKiorqPffknJvG7Nmzh1tuucU1PRgREcGtt95KYWFhvXq136sDBw5www03EBgYyFlnnVXvWi1FUTCbzbz//vsoioKiKNxyyy38/PPPKIrC119/3aAfH3/8MYqisGnTpkb7uW3bNhRF4f33329w7ccff0RRFP73v/+1+vvdkgEDBnDgwAH27dvX6nuE6AlOnT8zhOhFvv32W+Lj4znzzDNbVf+2227j/fff5+qrr+ZPf/oTv//+O4sWLeLgwYOuX5J5eXnMmDGD0NBQHnvsMQICAkhNTeWrr75q1TOuvfZa+vXrx6JFi9ixYwdvvfUWYWFhPP/88646zzzzDH/729+49tprue2228jPz+fll1/mnHPOYefOnQQEBDTZ/l133cUXX3zB3LlzGTJkCIWFhWzcuJGDBw8yZsyYZvu2bNkyLBYL9913H0VFRbzwwgtce+21nHfeeaxbt45HH32U5ORkXn75ZR5++GHeeeedVr3nWj/99BPHjh1jzpw5REREsH//ft544w3279/P5s2bGyQKX3PNNQwYMIBnn32Wpmb2P/zwQ2677TbGjx/PHXfcAUBCQgITJ04kNjaWZcuWceWVVzZ4nwkJCUyaNKnRNseNG0d8fDyfffYZs2fPrndt+fLlBAYGMnPmTKBj329wBkeff/45AJ999hnDhg1r8R4hegxVCNGlSktLVUC9/PLLW1V/165dKqDedttt9coffvhhFVDXrl2rqqqqfv311yqgbt26tdn2AHXBggWurxcsWKAC6q233lqv3pVXXqkGBwe7vk5NTVW1Wq36zDPP1Ku3d+9eVafTNSg/mb+/v3rvvfc2W2f27Nlq3759XV+npKSogBoaGqqWlJS4yufPn68C6siRI1Wr1eoqv/7661WDwaBWVVW5yqZMmaJOmTKlQZvvvvuuq6yioqJBXz755BMVUH/55RdXWe336vrrr29Qv/baiby9vdXZs2c3qDt//nzVaDTWe095eXmqTqer99+mMfPnz1f1er1aVFTkKquurlYDAgLq/Tdszfe7Oa+88ooKqGFhYeqgQYPa3Y4Q3UGmpYToYiaTCQBfX99W1f/+++8BmDdvXr3yP/3pTwCu3JzaUZP//e9/WK3WNvfrrrvuqvf12WefTWFhoau/X331FQ6Hg2uvvZaCggLXR0REBAMGDODnn39utv2AgAB+//13srKy2ty3a665Bn9/f9fXEyZMAOCmm26ql+cyYcIELBYLmZmZbWrf09PT9bqqqoqCggImTpwI0Og0zsnfq7a6+eabqa6u5osvvnCVLV++HJvNxk033dTsvbNmzcJqtdYbkVu1ahUlJSXMmjXLVdaR7zfAq6++yvDhw3n88cc5dOgQe/bsaVc7QnQHCW6E6GJ+fn6Ac9i/NY4fP45Go6F///71yiMiIggICOD48eMATJkyhauuuoqFCxcSEhLC5ZdfzrvvvtsgL6cpffr0qfd1YGAgAMXFxQAkJSWhqioDBgwgNDS03sfBgwfJy8trtv0XXniBffv2ERsby/jx43nyySc5duxYu/pWG+jExsY2Wl7b59YqKirigQceIDw8HE9PT0JDQ+nXrx8ApaWlDerXXmuvQYMGccYZZ7Bs2TJX2bJly5g4cWKD/84nGzlyJIMGDWL58uWusuXLlxMSEsJ5553nKuvI9/vXX39l79693HvvvVxzzTVoNJp6zxOip5PgRogu5ufnR1RUVJuTNFvaIE5RFL744gs2bdrE3LlzyczM5NZbb2Xs2LGUl5e32L5Wq220XK3JKXE4HCiKwsqVK/npp58afLz++uvNtn/ttddy7NgxXn75ZaKionjxxRcZOnQoP/zwQ7v71lKfW+vaa6/lzTff5K677uKrr75i1apVrFy5EnC+75OdONLTXjfffDPr168nIyODo0ePsnnz5hZHbWrNmjWLn3/+mYKCAqqrq/nmm2+46qqr6o1ideT7/eqrr+Lv789NN91EZGQkZ599tiv/RojeQIIbIbrBJZdcwtGjR5tcFXOivn374nA4GmymlpubS0lJCX379q1XPnHiRJ555hm2bdvGsmXL2L9/P59++mmH+5yQkICqqvTr14/p06c3+KidxmlOZGQk99xzDytWrCAlJYXg4GCeeeaZDvetI4qLi1mzZg2PPfYYCxcu5Morr+T8888nPj6+w203F5Bed911aLVaPvnkE5YtW4Zer683rdScWbNmYbPZ+PLLL/nhhx8wmUxcd911Deq15/tdUFDAF198wezZs/H29nY9LykpiZ07d7aqf0J0NwluhOgGjzzyCN7e3tx2223k5uY2uH706FFeeuklAC666CIAlixZUq/O4sWLAbj44osB5y/pk0csRo0aBdDqqanm/OEPf0Cr1bJw4cIGz1FVtcGy6RPZ7fYG0zthYWFERUW5pW8dUTv6c/J7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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "for _ in range(5):\n",
    "    d = 1000  # dimension of the data\n",
    "    lambd_list = np.logspace(-2, 2, 16)\n",
    "    cosine_similarities = np.zeros(len(lambd_list))\n",
    "\n",
    "    for i, lambd in enumerate(lambd_list):\n",
    "        G = np.random.normal(size=(d, d))\n",
    "        G = (G + G.T) / np.sqrt(2*d)   # make it symmetric and scale it\n",
    "        u = np.random.normal(size=d)\n",
    "\n",
    "        Y = G + np.outer(u, u)*np.sqrt(lambd)/d\n",
    "        eigenvalues, eigenvectors = np.linalg.eigh(Y)\n",
    "        cosine_similarities[i] = np.abs(np.dot(eigenvectors[:, -1], u)) / (np.linalg.norm(eigenvectors[:, -1]) * np.linalg.norm(u))\n",
    "\n",
    "    plt.semilogx(lambd_list, cosine_similarities, label='Cosine similarity', marker='o')\n",
    "\n",
    "plt.xlabel('λ')\n",
    "plt.ylabel('Cosine similarity')\n",
    "plt.title('Cosine similarity vs λ')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ac15f61e",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": ".venv",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
